home *** CD-ROM | disk | FTP | other *** search
/ Aminet 50 / Aminet 50 (2002)(GTI - Schatztruhe)[!][Aug 2002].iso / Aminet / dev / mui / MCC_SpeedBar.lha / MCC_SpeedBar / Developer / C / Examples / demo7.c < prev    next >
C/C++ Source or Header  |  2002-06-13  |  11KB  |  298 lines

  1.  
  2. #include <proto/exec.h>
  3. #include <proto/dos.h>
  4. #include <proto/muimaster.h>
  5.  
  6. #include <clib/alib_protos.h>
  7.  
  8. #include <mui/SpeedBar_mcc.h>
  9.  
  10. #include <string.h>
  11. #include <stdio.h>
  12.  
  13. /***********************************************************************/
  14.  
  15. long __stack = 8192;
  16. struct Library *MUIMasterBase;
  17.  
  18. /***********************************************************************/
  19.  
  20. #ifndef MAKE_ID
  21. #define MAKE_ID(a,b,c,d) ((ULONG)(a)<<24|(ULONG)(b)<<16|(ULONG)(c)<<8|(ULONG)(d))
  22. #endif
  23.  
  24. /***********************************************************************/
  25.  
  26. struct MUIS_SpeedBar_Button buttons[] =
  27. {
  28.     {0, "Rea_d", "Read selected.", 0, NULL},
  29.     {1, "_Modify", "Modify selected.", 0, NULL},
  30.     {2, "M_ove", "Move selected.", 0, NULL},
  31.     {MUIV_SpeedBar_Spacer},
  32.     {3, "De_lete", "Delete selected.", 0, NULL},
  33.     {4, "_Get", "Get news.", 0, NULL},
  34.     {5, "Ne_w", "New entry.", 0, NULL},
  35.     {MUIV_SpeedBar_End},
  36. };
  37.  
  38. /***********************************************************************/
  39.  
  40. Object *
  41. ocheckmark(STRPTR  key,ULONG selected)
  42. {
  43.     Object *obj;
  44.  
  45.     if (obj = MUI_MakeObject(MUIO_Checkmark,key))
  46.         SetAttrs(obj,MUIA_CycleChain,TRUE,MUIA_Selected,selected,TAG_DONE);
  47.  
  48.     return obj;
  49. }
  50.  
  51. /****************************************************************************/
  52.  
  53. Object *
  54. ocycle(STRPTR key,STRPTR *labels,ULONG active)
  55. {
  56.     Object *obj;
  57.  
  58.     if (obj = MUI_MakeObject(MUIO_Cycle,key,labels))
  59.         SetAttrs(obj,MUIA_CycleChain,TRUE,MUIA_Cycle_Active,active,TAG_DONE);
  60.  
  61.     return obj;
  62. }
  63.  
  64. /****************************************************************************/
  65.  
  66. Object *
  67. obutton(STRPTR label)
  68. {
  69.     Object *obj;
  70.  
  71.     if (obj = MUI_MakeObject(MUIO_Button,label))
  72.         SetAttrs(obj,MUIA_CycleChain,TRUE,TAG_DONE);
  73.  
  74.     return obj;
  75. }
  76.  
  77. /***********************************************************************/
  78.  
  79. STRPTR viewModeStrings[] =
  80. {
  81.     "Icons and text",
  82.     "Icons only",
  83.     "Text only",
  84.     NULL
  85. };
  86.  
  87. STRPTR lPosStrings[] =
  88. {
  89.     "Bottom",
  90.     "Top",
  91.     "Right",
  92.     "Left",
  93.     NULL
  94. };
  95.  
  96. #define DEF_ViewMode   MUIV_SpeedBar_ViewMode_TextGfx
  97. #define DEF_Borderless FALSE
  98. #define DEF_Raising    FALSE
  99. #define DEF_Sunny      FALSE
  100. #define DEF_Scaled     FALSE
  101. #define DEF_Underscore TRUE
  102. #define DEF_BarSpacer  TRUE
  103. #define DEF_LPos       MUIV_SpeedBar_LabelPosition_Bottom
  104.  
  105. /***********************************************************************/
  106.  
  107. int
  108. main(int argc,char **argv)
  109. {
  110.     int res;
  111.  
  112.     if (MUIMasterBase = OpenLibrary("muimaster.library",19))
  113.     {
  114.         Object *app, *win, *sb, *viewMode, *borderless, *sunny,
  115.                *raising, *scaled, *lPos, *barSpacer, *underscore,
  116.                *defaults, *update;
  117.         char   *s;
  118.  
  119.         if (app = ApplicationObject,
  120.                 MUIA_Application_Title,       "SpeedBar Demo7",
  121.                 MUIA_Application_Version,     "$VER: SpeedBarDemo7 14.4 (13.6.2002)",
  122.                 MUIA_Application_Copyright,   "Copyright 1999-2002 by Alfonso Ranieri",
  123.                 MUIA_Application_Author,      "Alfonso Ranieri <alforan@tin.it>",
  124.                 MUIA_Application_Description, "Speed(Bar|Button).mcc test",
  125.                 MUIA_Application_Base,        "SPEEDBARTEST",
  126.  
  127.                 SubWindow, win = WindowObject,
  128.                     MUIA_Window_ID,    MAKE_ID('M','A','I','N'),
  129.                     MUIA_Window_Title, "SpeedBar Demo7",
  130.  
  131.                     WindowContents, VGroup,
  132.  
  133.                         Child, HGroup,
  134.                             GroupFrame,
  135.                             Child, sb = SpeedBarObject,
  136.                                 MUIA_Group_Horiz,               TRUE,
  137.                                 MUIA_SpeedBar_ViewMode,         DEF_ViewMode,
  138.                                 MUIA_SpeedBar_Borderless,       DEF_Borderless,
  139.                                 MUIA_SpeedBar_RaisingFrame,     DEF_Raising,
  140.                                 MUIA_SpeedBar_Sunny,            DEF_Sunny,
  141.                                 MUIA_SpeedBar_SmallImages,      DEF_Scaled,
  142.                                 MUIA_SpeedBar_BarSpacer,        DEF_BarSpacer,
  143.                                 MUIA_SpeedBar_LabelPosition,    DEF_LPos,
  144.                                 MUIA_SpeedBar_EnableUnderscore, DEF_Underscore,
  145.                                 MUIA_SpeedBar_StripUnderscore,  TRUE,
  146.                                 MUIA_SpeedBar_PicsDrawer,       "PROGDIR:Pics",
  147.                                 MUIA_SpeedBar_Buttons,          buttons,
  148.                                 MUIA_SpeedBar_Strip,            "Main.toolbar",
  149.                                 MUIA_SpeedBar_StripButtons,     14,
  150.                                 MUIA_SpeedBar_SpacerIndex,      -1,
  151.                             End,
  152.                             Child, HSpace(0),
  153.                         End,
  154.  
  155.                         Child, VSpace(0),
  156.  
  157.                         Child, VGroup,
  158.                             GroupFrameT("Appareance"),
  159.  
  160.                             Child, HGroup,
  161.                                 Child, Label2(s = "_Toolbar buttons appear as"),
  162.                                 Child, viewMode = ocycle(s,viewModeStrings,DEF_ViewMode),
  163.                             End,
  164.  
  165.                             Child, HGroup,
  166.                                 Child, Label2(s = "_BorderLess"),
  167.                                 Child, borderless = ocheckmark(s,DEF_Borderless),
  168.  
  169.                                 Child, RectangleObject, MUIA_Weight, 1, End,
  170.  
  171.                                 Child, Label2(s = "_Highlight"),
  172.                                 Child, sunny = ocheckmark(s,FALSE),
  173.  
  174.                                 Child, RectangleObject, MUIA_Weight, 1, End,
  175.  
  176.                                 Child, Label2(s = "_Raised"),
  177.                                 Child, raising = ocheckmark(s,DEF_Raising),
  178.  
  179.                                 Child, RectangleObject, MUIA_Weight, 1, End,
  180.  
  181.                                 Child, Label2(s = "_Scaled"),
  182.                                 Child, scaled = ocheckmark(s,DEF_Scaled),
  183.  
  184.                                 Child, RectangleObject, MUIA_Weight, 1, End,
  185.                             End,
  186.  
  187.                             Child, HGroup,
  188.                                 Child, Label2(s = "T_ext is placed at"),
  189.                                 Child, lPos = ocycle(s,lPosStrings,DEF_LPos),
  190.  
  191.                                 Child, RectangleObject, MUIA_Weight, 1, End,
  192.  
  193.                                 Child, Label2(s = "B_ar spacer"),
  194.                                 Child, barSpacer = ocheckmark(s,DEF_BarSpacer),
  195.  
  196.                                 Child, RectangleObject, MUIA_Weight, 1, End,
  197.  
  198.                                 Child, Label2(s = "U_nderscore"),
  199.                                 Child, underscore = ocheckmark(s,DEF_Underscore),
  200.                             End,
  201.                         End,
  202.  
  203.                         Child, VSpace(0),
  204.  
  205.                         Child, HGroup,
  206.                             Child, defaults = obutton("De_faults"),
  207.                             Child, HSpace(0),
  208.                             Child, update = obutton("_Update"),
  209.                         End,
  210.  
  211.                         Child, VSpace(0),
  212.                     End,
  213.                 End,
  214.             End)
  215.         {
  216.             Object *item;
  217.             ULONG  sigs = 0, id;
  218.  
  219.             DoMethod(win,MUIM_Notify,MUIA_Window_CloseRequest,TRUE,MUIV_Notify_Application,2,MUIM_Application_ReturnID,MUIV_Application_ReturnID_Quit);
  220.             DoMethod(defaults,MUIM_Notify,MUIA_Pressed,FALSE,app,2,MUIM_Application_ReturnID,TAG_USER);
  221.             DoMethod(update,MUIM_Notify,MUIA_Pressed,FALSE,app,2,MUIM_Application_ReturnID,TAG_USER+1);
  222.  
  223.             set(win,MUIA_Window_Open,TRUE);
  224.  
  225.             while ((id = DoMethod(app,MUIM_Application_NewInput,&sigs))!=MUIV_Application_ReturnID_Quit)
  226.             {
  227.                 switch(id)
  228.                 {
  229.                     case TAG_USER:
  230.                         set(viewMode,MUIA_Cycle_Active,DEF_ViewMode);
  231.                         set(borderless,MUIA_Selected,DEF_Borderless);
  232.                         set(lPos,MUIA_Cycle_Active,DEF_LPos);
  233.                         set(raising,MUIA_Selected,DEF_Raising);
  234.                         set(scaled,MUIA_Selected,DEF_Scaled);
  235.                         set(sunny,MUIA_Selected,DEF_Sunny);
  236.                         set(barSpacer,MUIA_Selected,DEF_BarSpacer);
  237.                         set(underscore,MUIA_Selected,DEF_Underscore);
  238.                         DoMethod(app,MUIM_Application_ReturnID,TAG_USER+1);
  239.                         break;
  240.  
  241.                     case TAG_USER+1:
  242.                     {
  243.                         ULONG viewModeVal, borderlessVal, sunnyVal, raisingVal,
  244.                               scaledVal, lPosVal, barSpacerVal, underscoreVal;
  245.  
  246.                         get(viewMode,MUIA_Cycle_Active,&viewModeVal);
  247.                         get(borderless,MUIA_Selected,&borderlessVal);
  248.                         get(lPos,MUIA_Cycle_Active,&lPosVal);
  249.                         get(raising,MUIA_Selected,&raisingVal);
  250.                         get(scaled,MUIA_Selected,&scaledVal);
  251.                         get(sunny,MUIA_Selected,&sunnyVal);
  252.                         get(barSpacer,MUIA_Selected,&barSpacerVal);
  253.                         get(underscore,MUIA_Selected,&underscoreVal);
  254.  
  255.                         SetAttrs(sb,MUIA_SpeedBar_ViewMode,         viewModeVal,
  256.                                     MUIA_SpeedBar_Borderless,       borderlessVal,
  257.                                     MUIA_SpeedBar_RaisingFrame,     raisingVal,
  258.                                     MUIA_SpeedBar_SmallImages,      scaledVal,
  259.                                     MUIA_SpeedBar_Sunny,            sunnyVal,
  260.                                     MUIA_SpeedBar_LabelPosition,    lPosVal,
  261.                                     MUIA_SpeedBar_BarSpacer,        barSpacerVal,
  262.                                     MUIA_SpeedBar_EnableUnderscore, underscoreVal,
  263.                                     TAG_DONE);
  264.  
  265.                         break;
  266.                     }
  267.                 }
  268.  
  269.                 if (sigs)
  270.                 {
  271.                     sigs = Wait(sigs | SIGBREAKF_CTRL_C);
  272.                     if (sigs & SIGBREAKF_CTRL_C) break;
  273.                 }
  274.             }
  275.  
  276.             MUI_DisposeObject(app);
  277.  
  278.             res = RETURN_OK;
  279.         }
  280.         else
  281.         {
  282.             printf("%s: Can't create application\n",argv[0]);
  283.             res = RETURN_FAIL;
  284.         }
  285.  
  286.         CloseLibrary(MUIMasterBase);
  287.     }
  288.     else
  289.     {
  290.         printf("%s: Can't open muimaster.library ver. 19 or higher\n",argv[0]);
  291.         res = RETURN_ERROR;
  292.     }
  293.  
  294.     return res;
  295. }
  296.  
  297. /***********************************************************************/
  298.